package com.atguigu.springcloud.dao;

import com.atguigu.springcloud.entities.Payment;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * @author 赵雨强
 * @create 2021/4/30 6:24


 *用在接口类上，在编译之后会生成相应的接口实现类，是mybatis的注解。位置：对应的某个接口类上面
 */
@Mapper
public interface PaymentDao {
    /**
     * 向数据库写
     * @param payment 写入的订单
     * @return 是否成功
     */
    int create(Payment payment);

    /**
     * 根据ID查询
     * @param id ID
     * @return 订单完整信息
     * ：用注解来简化xml配置的时候（比如Mybatis的Mapper.xml中的sql参数引入），
     * Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中
     * （一般通过#{}的方式，${}会有sql注入的问题）。
     */
    Payment getPaymentById(@Param("id") Long id);

}
